/**
 * @Author 硕鼠
 * @Date 2020/5/8 9:40
 * @Version 1.0
 * @Description 文件说明
 */
public class Test02 {
    public static void main(String[] args) {
        ILove love = new Love();
        love.love(2);

        //匿名内部类
        love = new ILove() {
            @Override
            public void love(int a) {
                System.out.println("我爱你"+ a);
            }
        };
        love.love(3);

        //lamda表达式
        love = (int a)-> {
                System.out.println("我爱你"+ a);
        };
        love.love(4);

        //简化1：简化参数类型
        love = (a)-> {
            System.out.println("我爱你"+ a);
        };
        love.love(5);

        //简化2：简化括号
        love = a-> {
            System.out.println("我爱你"+ a);
        };
        love.love(6);

        //简化2：简化花括号
        love = a-> System.out.println("我爱你"+ a);
        love.love(7);
        /**
         * lamda表达式，只有一行代码的情况下，才可以简化一行，如果有多行，需要用代码块包裹
         * 前提是接口为函数式接口
         * 多个参数也可以去掉参数类型，要去掉都去掉，记得保留括号。
         */

    }
}

interface ILove{
    void love(int a);
}

class Love implements ILove{
    @Override
    public void love(int a) {
        System.out.println("我爱你"+ a);
    }
}